using System;
using System.Xml.Serialization;

namespace PeDALS.Tools.AZ.PSTArchive.OutputData
{
    public class Attach
    {
        private byte[] mbaOrigFile;
        private long mlngFilesize;
        private NZMEFileDateTime mnfdtFileDateTime;
        private NZMEFileFormat mnffFileFormat;
        private NZMEFilename mnfnFilename;
        private NZMEText mntText;
        private string mstrFileIdentifier;
        private string mstrMimeTag;
        private string mstrPath;

        [XmlElement(typeof(byte[]), ElementName="origfile")]
        public byte[] OrigFile
        {
            get
            {
                return mbaOrigFile;
            }
            set
            {
                mbaOrigFile = value;
            }
        }

        [XmlElement(typeof(string))]
        public string FileIdentifier
        {
            get
            {
                return mstrFileIdentifier;
            }
            set
            {
                mstrFileIdentifier = value;
            }
        }

        [XmlElement(typeof(string))]
        public string Path
        {
            get
            {
                return mstrPath;
            }
            set
            {
                mstrPath = value;
            }
        }

        [XmlElement(typeof(NZMEFilename))]
        public NZMEFilename Filename
        {
            get
            {
                return mnfnFilename;
            }
            set
            {
                mnfnFilename = value;
            }
        }

        [XmlElement(typeof(long), ElementName="Size")]
        public long Filesize
        {
            get
            {
                return mlngFilesize;
            }
            set
            {
                mlngFilesize = value;
            }
        }


        [XmlElement(typeof(NZMEFileDateTime))]
        public NZMEFileDateTime FileDateTime
        {
            get
            {
                return mnfdtFileDateTime;
            }
            set
            {
                mnfdtFileDateTime = value;
            }
        }

        [XmlElement(typeof(string), ElementName="Mimetype")]
        public string MimeTag
        {
            get
            {
                return mstrMimeTag;
            }
            set
            {
                mstrMimeTag = value;
            }
        }

        [XmlElement(typeof(NZMEFileFormat))]
        public NZMEFileFormat FileFormat
        {
            get
            {
                return mnffFileFormat;
            }
            set
            {
                mnffFileFormat = value;
            }
        }

        [XmlElement(typeof(NZMEText))]
        public NZMEText Text
        {
            get
            {
                return mntText;
            }
            set
            {
                mntText = value;
            }
        }
    }
}
